// 货币加逗号
function Moneysettle(num) {
  num = num + '';
  const numStr = num.split('.'); // 先转为字符串，再分开整数和小数部分
  let numInt = numStr[0]; // 整数部分
  let numDec = numStr.length > 1 ? '.' + numStr[1] : '.'; // 小数部分，只有原数字存在小数点的时候，分割完长度才会大于1
  while (3 - numDec.length) numDec += '0'; // 补0，只有整数的补2个，有一位小数的补1个
  let resultInt = ''; // 存储整数部分处理结果
  while (numInt.length > 3) {
    // 当剩余整数部分长度大于3时继续处理
    resultInt = ',' + numInt.slice(-3) + resultInt; // 把后三位截出来，和处理结果拼在一起，前面加逗号
    numInt = numInt.slice(0, -3); // 剩下的部分是除去刚刚截掉的3位的部分
  }
  return numInt + resultInt + numDec; // 结果是“剩余的不足3位的整数”+“处理好的整数结果”+“小数部分”
}

// 万亿四舍五入
function moneyRound(num) {
  let res;
  let nums = num + '';
  if (nums.indexOf('.') > -1) {
    nums = nums.split('.')[0];
  }
  if (nums.length <= 4) {
    res = num;
  }
  if (nums.length > 4) {
    res = Math.round(num / 100) / 100 + '万';
  }
  if (nums.length > 8) {
    res = Math.round(num / 1000000) / 100 + '亿';
  }
  return res;
}

// 货币加小数点
function adddecimalpoint(num) {
  num = num + '';
  const numStr = num.split('.'); // 先转为字符串，再分开整数和小数部分
  let numInt = numStr[0]; // 整数部分
  let numDec = numStr.length > 1 ? '.' + numStr[1] : '.'; // 小数部分，只有原数字存在小数点的时候，分割完长度才会大于1
  while (3 - numDec.length) numDec += '0'; // 补0，只有整数的补2个，有一位小数的补1个
  return numInt + numDec; // 结果是“剩余的不足3位的整数”+“处理好的整数结果”+“小数部分”
}

export { Moneysettle, moneyRound, adddecimalpoint };
